The present invention relates to techniques for repairing failures on a programmable circuit, and more particularly, to techniques for isolating failures on a programmable circuit and repairing the failures by transferring the functionality associated with a failed circuit block to another part of the circuit.
Integrated circuits sometimes fail to operate properly as a result of defects. For example, the die of an integrated circuit may become scratched. The integrated circuit may fail to operate properly as a result of the scratch. As another example, circuit failures may be caused by a short that develops in the integrated circuit.
A programmable circuit such as a programmable logic device may develop a defect before the circuit has been configured or programmed according to a particular user design. When a defect occurs in a programmable circuit before the circuit has been configured, a failed row of programmable circuit elements that have not been configured or programmed can be replaced with an extra redundant row of programmable circuit elements.
A circuit failure can also occur in programmable circuits after the circuit has been configured according to a user design. For example, a circuit failure can occur on a programmable circuit, while the circuit is being used for a user application. Often circuit failures are caused by defects in small portions of the chip.
It would therefore be desirable to provide a mechanism for locating and isolating defects on a programmable circuit after the programmable circuit has been configured according to a user design. It would also be desirable to provide techniques for repairing a localized failure on a programmable circuit without having to reconfigure the entire circuit design.